#include <bits/stdc++.h>

using namespace std;
const int N = 100005;
unsigned long long h[N];
int n;
int main(){
    cin >> n;
    vector<long long > maxsta;
    vector<long long > minsta;
    long long res = 0;
    for(int i = 1; i <= n; i++)cin >> h[i];
    for(int i = 1; i <= n; i++){
        // 维护maxsta是一个单调递增的栈(栈顶最大)
        while(!maxsta.empty() && h[i] <= h[maxsta.back()])maxsta.pop_back();
        // 单调递减
        while(!minsta.empty() && h[i] > h[minsta.back()]) minsta.pop_back();
        // 找到区间

        int val = minsta.size() ? minsta.back() : 0;  
        int k =  upper_bound(maxsta.begin(),maxsta.end(),val) - maxsta.begin();
       
        if(k!=maxsta.size())
			res=max(res,i-maxsta[k]+1);
        maxsta.push_back(i);
        minsta.push_back(i);
    }
    cout << res;
    return 0;

}